package com.ruoyi.store.service;

import com.ruoyi.store.dto.StockOutSto;
import com.ruoyi.system.api.domain.caigou.BuyBackOrder;
import com.ruoyi.system.api.domain.store.StockOut;

import java.util.List;

/**
 * 出库记录Service接口
 *
 * @author ruoyi
 * @date 2024-10-31
 */
public interface IStockOutService {
    /**
     * 查询出库记录
     *
     * @param id 出库记录主键
     * @return 出库记录
     */
    public StockOut selectStockOutById(Integer id);

    /**
     * 出库
     */
    public String outStock(StockOutSto stockOutSto);

    /**
     * 查询出库记录列表
     *
     * @param stockOut 出库记录
     * @return 出库记录集合
     */
    public List<StockOut> selectStockOutList(StockOut stockOut);
    List<StockOut> getStockTranList(StockOut stockOut);

    public String addOutStock(int id);

    public List<StockOut> getUseList(StockOut stockOut);

    public String addStockOutByTran(int id);
    public String addStockOutByBuyBack(BuyBackOrder buyBackOrder);

    /**
     * 新增出库记录
     *
     * @param stockOut 出库记录
     * @return 结果
     */
    public int insertStockOut(StockOut stockOut);
    List<StockOut> listForReciveOrder(StockOut stockOut);

    StockOut selectStockOutByStockOutCode(String stockOutCode);
    /**
     * 修改出库记录
     *
     * @param stockOut 出库记录
     * @return 结果
     */
    public int updateStockOut(StockOut stockOut);

    /**
     * 批量删除出库记录
     *
     * @param ids 需要删除的出库记录主键集合
     * @return 结果
     */
    public int deleteStockOutByIds(Integer[] ids);

    /**
     * 删除出库记录信息
     *
     * @param id 出库记录主键
     * @return 结果
     */
    public int deleteStockOutById(Integer id);

}
